package bancosys.tec.persist.entities.domain;

import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

import jmine.tec.persist.annotation.Comment;
import jmine.tec.persist.annotation.Constraint;
import jmine.tec.persist.annotation.DiscriminatorComment;
import bancosys.tec.persist.base.enumx.ApacheIntValuedEnumMock;
import bancosys.tec.persist.base.enumx.ApacheStringValuedEnumMock;
import bancosys.tec.persist.base.enumx.JavaEnumMock;

@Entity
@DiscriminatorValue("A")
@DiscriminatorComment("WRONG SUBCLASS A")
public class WrongSubclassA extends WrongSingleTableEntity {

    private ApacheIntValuedEnumMock intMockReutilizado;

    private ApacheIntValuedEnumMock intMockEnumString;

    private ApacheIntValuedEnumMock intMockString;

    private ApacheIntValuedEnumMock intMockBigDecimal;

    private ApacheIntValuedEnumMock intMockLong;

    private ApacheStringValuedEnumMock stringMock;

    private ApacheStringValuedEnumMock stringMockReusado;

    private ApacheStringValuedEnumMock stringMockBigDecimal;

    private ApacheStringValuedEnumMock stringMockLong;

    private JavaEnumMock enumMock;

    private JavaEnumMock enumMockBigDecimal;

    private PaiAnotado associacaoReutilizada;

    private SubPaiAnotado associacaoReutilizadaOutra;

    /**
     * @return the intMockReutilizado
     */
    @Column(name = "APACHE_INT_ENUM")
    @Constraint(suffix = "0")
    @Comment(table = "WRONG_SINGLE_TABLE", column = "APACHE_INT_ENUM", value = "NENHUM COMENTARIO.")
    public ApacheIntValuedEnumMock getIntMockReutilizado() {
        return this.intMockReutilizado;
    }

    /**
     * @return the intMockEnumString
     */
    @Column(name = "APACHE_INT_STRING_ENUM")
    @Comment(table = "WRONG_SINGLE_TABLE", column = "APACHE_INT_STRING_ENUM", value = "NENHUM COMENTARIO.")
    @Constraint(suffix = "1")
    public ApacheIntValuedEnumMock getIntMockEnumString() {
        return this.intMockEnumString;
    }

    /**
     * @return the intMockString
     */
    @Column(name = "APACHE_INT_ENUM_STRING")
    @Comment(table = "WRONG_SINGLE_TABLE", column = "APACHE_INT_ENUM_STRING", value = "NENHUM COMENTARIO.")
    public ApacheIntValuedEnumMock getIntMockString() {
        return this.intMockString;
    }

    /**
     * @return the intMockBigDecimal
     */
    @Column(name = "APACHE_INT_ENUM_BIG_DECIMAL", scale = 8, precision = 26)
    @Comment(table = "WRONG_SINGLE_TABLE", column = "APACHE_INT_ENUM_BIG_DECIMAL", value = "NENHUM COMENTARIO.")
    public ApacheIntValuedEnumMock getIntMockBigDecimal() {
        return this.intMockBigDecimal;
    }

    /**
     * @return the intMockLong
     */
    @Column(name = "APACHE_INT_ENUM_LONG")
    @Comment(table = "WRONG_SINGLE_TABLE", column = "APACHE_INT_ENUM_LONG", value = "NENHUM COMENTARIO.")
    public ApacheIntValuedEnumMock getIntMockLong() {
        return this.intMockLong;
    }

    /**
     * @return the stringMock
     */
    @Column(name = "APACHE_STRING_STRING_ENUM")
    @Comment(table = "WRONG_SINGLE_TABLE", column = "APACHE_STRING_STRING_ENUM", value = "NENHUM COMENTARIO.")
    @Constraint(suffix = "2")
    public ApacheStringValuedEnumMock getStringMock() {
        return this.stringMock;
    }

    /**
     * @return the stringMockReusado
     */
    @Column(name = "APACHE_STRING_ENUM_STRING")
    @Comment(table = "WRONG_SINGLE_TABLE", column = "APACHE_STRING_ENUM_STRING", value = "NENHUM COMENTARIO.")
    public ApacheStringValuedEnumMock getStringMockReusado() {
        return this.stringMockReusado;
    }

    /**
     * @return the stringMockBigDecimal
     */
    @Column(name = "APACHE_STRING_ENUM_BIG_DECIMAL")
    @Comment(table = "WRONG_SINGLE_TABLE", column = "APACHE_STRING_ENUM_BIG_DECIMAL", value = "NENHUM COMENTARIO.")
    public ApacheStringValuedEnumMock getStringMockBigDecimal() {
        return this.stringMockBigDecimal;
    }

    /**
     * @return the stringMockLong
     */
    @Column(name = "APACHE_STRING_ENUM_LONG")
    @Comment(table = "WRONG_SINGLE_TABLE", column = "APACHE_STRING_ENUM_LONG", value = "NENHUM COMENTARIO.")
    public ApacheStringValuedEnumMock getStringMockLong() {
        return this.stringMockLong;
    }

    /**
     * @return the enumMock
     */
    @Column(name = "JAVA_APACHE_INT_ENUM")
    @Comment(table = "WRONG_SINGLE_TABLE", column = "JAVA_APACHE_INT_ENUM", value = "NENHUM COMENTARIO.")
    @Constraint(suffix = "3")
    public JavaEnumMock getEnumMock() {
        return this.enumMock;
    }

    /**
     * @return the enumMockBigDecimal
     */
    @Column(name = "JAVA_ENUM_BIG_DECIMAL", precision = 20, scale = 5)
    @Comment(table = "WRONG_SINGLE_TABLE", column = "JAVA_ENUM_BIG_DECIMAL", value = "NENHUM COMENTARIO.")
    public JavaEnumMock getEnumMockBigDecimal() {
        return this.enumMockBigDecimal;
    }

    /**
     * @return the associacaoReutilizada
     */
    @ManyToOne
    @JoinColumn(name = "COD_ASSOCIACAO_REUTILIZADA")
    @Comment(table = "WRONG_SINGLE_TABLE", column = "COD_ASSOCIACAO_REUTILIZADA", value = "NENHUM COMENTARIO.")
    public PaiAnotado getAssociacaoReutilizada() {
        return this.associacaoReutilizada;
    }

    /**
     * @return the associacaoReutilizadaOutra
     */
    @ManyToOne
    @JoinColumn(name = "COD_ASSOCIACAO_REUTILIZADA_OUTRA")
    @Comment(table = "WRONG_SINGLE_TABLE", column = "COD_ASSOCIACAO_REUTILIZADA_OUTRA", value = "NENHUM COMENTARIO.")
    public SubPaiAnotado getAssociacaoReutilizadaOutra() {
        return this.associacaoReutilizadaOutra;
    }

    /**
     * @param intMockReutilizado the intMockReutilizado to set
     */
    public void setIntMockReutilizado(ApacheIntValuedEnumMock intMockReutilizado) {
        this.intMockReutilizado = intMockReutilizado;
    }

    /**
     * @param intMockEnumString the intMockEnumString to set
     */
    public void setIntMockEnumString(ApacheIntValuedEnumMock intMockEnumString) {
        this.intMockEnumString = intMockEnumString;
    }

    /**
     * @param intMockString the intMockString to set
     */
    public void setIntMockString(ApacheIntValuedEnumMock intMockString) {
        this.intMockString = intMockString;
    }

    /**
     * @param intMockBigDecimal the intMockBigDecimal to set
     */
    public void setIntMockBigDecimal(ApacheIntValuedEnumMock intMockBigDecimal) {
        this.intMockBigDecimal = intMockBigDecimal;
    }

    /**
     * @param intMockLong the intMockLong to set
     */
    public void setIntMockLong(ApacheIntValuedEnumMock intMockLong) {
        this.intMockLong = intMockLong;
    }

    /**
     * @param stringMock the stringMock to set
     */
    public void setStringMock(ApacheStringValuedEnumMock stringMock) {
        this.stringMock = stringMock;
    }

    /**
     * @param stringMockReusado the stringMockReusado to set
     */
    public void setStringMockReusado(ApacheStringValuedEnumMock stringMockReusado) {
        this.stringMockReusado = stringMockReusado;
    }

    /**
     * @param stringMockBigDecimal the stringMockBigDecimal to set
     */
    public void setStringMockBigDecimal(ApacheStringValuedEnumMock stringMockBigDecimal) {
        this.stringMockBigDecimal = stringMockBigDecimal;
    }

    /**
     * @param stringMockLong the stringMockLong to set
     */
    public void setStringMockLong(ApacheStringValuedEnumMock stringMockLong) {
        this.stringMockLong = stringMockLong;
    }

    /**
     * @param enumMock the enumMock to set
     */
    public void setEnumMock(JavaEnumMock enumMock) {
        this.enumMock = enumMock;
    }

    /**
     * @param enumMockBigDecimal the enumMockBigDecimal to set
     */
    public void setEnumMockBigDecimal(JavaEnumMock enumMockBigDecimal) {
        this.enumMockBigDecimal = enumMockBigDecimal;
    }

    /**
     * @param associacaoReutilizada the associacaoReutilizada to set
     */
    public void setAssociacaoReutilizada(PaiAnotado associacaoReutilizada) {
        this.associacaoReutilizada = associacaoReutilizada;
    }

    /**
     * @param associacaoReutilizadaOutra the associacaoReutilizadaOutra to set
     */
    public void setAssociacaoReutilizadaOutra(PaiAnotado associacaoReutilizadaOutra) {
    }

}
